#include "task_main.h"
#include "bsp.h"
#include "usrconfig.h"
#include "gprsstatemch.h"
#include "globaldata.h"
#include "usrlib.h"
#include "kernelobj.h"
TaskHandle_t TaskHandle_Main=NULL;
void Task_Main(void * para)
{
	UART_RXINFO CfgUartRxInfo;
	UART_RXINFO GprsUartRxInfo;
	u32 TimeToWait=0;
	GprsState NextState=InitState;
	GprsState LastState=InitState;
	para=para;
	GprsStartingUp();
	while(1)
	{		
		NextState=GprsStateMch[NextState](&LastState);		
		if(CfgUart.GetOneRxPkg(&CfgUartRxInfo,1)==TRUE)
		{
			if((MemCmp("AT",(const char *)CfgUartRxInfo.datap,2)==TRUE)&&
				 (MemCmp("\r\n",(const char *)&CfgUartRxInfo.datap[CfgUartRxInfo.datalen-2],2)==TRUE))
			{
				GprsCtrUart.ReleaseAllRxPkg();
				GprsCtrUart.PrintStrlen(CfgUartRxInfo.datap,CfgUartRxInfo.datalen);
				for(TimeToWait=350;TimeToWait;TimeToWait--)
				{
					if(GprsCtrUart.GetOneRxPkg(&GprsUartRxInfo,1)==TRUE)
					{
						CfgUart.PrintStrlen(GprsUartRxInfo.datap,GprsUartRxInfo.datalen);
						GprsCtrUart.ReleaseOneRxPkg(&GprsUartRxInfo);
						break;
					}
				}
			}
			CfgUart.ReleaseOneRxPkg(&CfgUartRxInfo);
		}
	}
}













